package util

//
//import (
//	"database/sql"
//	"fmt"
//	_ "github.com/mattn/go-sqlite3"
//	"log"
//)
//
//// var Db *SQLiteDB
//var (
//	dbConn *SQLiteDB
//)
//
//type SQLiteDB struct {
//	db *sql.DB
//	tx *sql.Tx
//}
//
////func init() {
////	//初始化sqlite
////	Db, _ = NewSQLiteDB(DB)
////
////}
//
//func NewSQLiteDB(dbName string) (*SQLiteDB, error) {
//	if dbConn != nil {
//		return dbConn, nil
//	}
//	db, err := sql.Open(Driver_Class, dbName)
//	if err != nil {
//		return nil, err
//	}
//	//初始化agent表
//	sqlStmt := fmt.Sprintf(`CREATE TABLE %s (id INTEGER PRIMARY KEY, agentIp TEXT,agentMac TEXT,logInfo TEXT,createTime TEXT,state INTEGER);`, TableAgent)
//	initDB(db, TableAgent, sqlStmt)
//	//初始化ServerInfo
//	sqlStmt = fmt.Sprintf(`CREATE TABLE %s (id INTEGER PRIMARY KEY, agentIp TEXT,agentMac TEXT,serverName TEXT,describe TEXT,logPath TEXT,createTime TEXT,state INTEGER);`, TableServerInfo)
//	initDB(db, TableServerInfo, sqlStmt)
//	//初始化logInfo表
//	sqlStmt = fmt.Sprintf(`CREATE TABLE %s (id INTEGER PRIMARY KEY,agentMac TEXT,serverName TEXT, content TEXT,createTime LONG);`, TableLogInfo)
//	initDB(db, TableLogInfo, sqlStmt)
//	dbConn = &SQLiteDB{db: db}
//	return &SQLiteDB{db: db}, nil
//}
//
//// 初始化
//func initDB(db *sql.DB, tableName string, sql string) {
//	// 检查表是否存在
//	sqlStmt := fmt.Sprintf("SELECT name FROM sqlite_master WHERE type='table' AND name='%s';", tableName)
//	rows, err := db.Query(sqlStmt)
//	if err != nil {
//		log.Fatal(err)
//	}
//	// 如果表不存在，则创建它
//	if !rows.Next() {
//		//sqlStmt = fmt.Sprintf(`CREATE TABLE %s (id INTEGER PRIMARY KEY, agentIp TEXT,agentMac TEXT,logInfo TEXT);`, tableName)
//		_, err = db.Exec(sql)
//		if err != nil {
//			log.Printf("%q: %s\n", err, sql)
//			return
//		}
//	}
//	defer rows.Close()
//	//defer db.Close()
//}
//
//func tableExists(db *sql.DB, tableName string) (bool, error) {
//	query := "SELECT name FROM sqlite_master WHERE type='table' AND name=?;"
//	row := db.QueryRow(query, tableName)
//
//	var name string
//	err := row.Scan(&name)
//
//	switch {
//	case err == sql.ErrNoRows:
//		return false, nil
//	case err != nil:
//		return false, err
//	default:
//		return true, nil
//	}
//}
//
//func (s *SQLiteDB) Begin() error {
//	tx, err := s.db.Begin()
//	if err != nil {
//		return err
//	}
//	s.tx = tx
//	return nil
//}
//
//func (s *SQLiteDB) Commit() error {
//	if s.tx == nil {
//		return nil
//	}
//	err := s.tx.Commit()
//	s.tx = nil
//	return err
//}
//
//func (s *SQLiteDB) Rollback() error {
//	if s.tx == nil {
//		return nil
//	}
//	err := s.tx.Rollback()
//	s.tx = nil
//	return err
//}
//
//func (s *SQLiteDB) Exec(query string, args ...interface{}) (sql.Result, error) {
//	var res sql.Result
//	var err error
//	if s.tx != nil {
//		res, err = s.tx.Exec(query, args...)
//	} else {
//		res, err = s.db.Exec(query, args...)
//	}
//	return res, err
//}
//
//func (s *SQLiteDB) Query(query string, args ...interface{}) (*sql.Rows, error) {
//	var rows *sql.Rows
//	var err error
//	if s.tx != nil {
//		rows, err = s.tx.Query(query, args...)
//	} else {
//		rows, err = s.db.Query(query, args...)
//	}
//	return rows, err
//}
//
//func (s *SQLiteDB) Close() error {
//	return s.db.Close()
//}
